package com.ophiux.cs.domain.consult.repositories;

import com.ophiux.cs.domain.consult.model.aggregate.CSUserInfo;
import com.ophiux.cs.domain.consult.model.entity.CSUser;
import com.ophiux.utils.exception.OphiuxRepositoryException;

/**
 * 咨询用户信息仓储
 * @author chenh
 *
 */
public interface IUserInfoRepository {

	/**
	 * 保存咨询用户信息
	 * @param csUser
	 */
	public void save(CSUser csUser) throws OphiuxRepositoryException;
	
	/**
	 * 根据targetID 获取咨询用户
	 * @param targetID
	 * @return
	 */
	public CSUser getCSUserByTargetID(String targetID) throws OphiuxRepositoryException;
	
	/**
	 * 根据targetACC 获取咨询用户
	 * @param targetID
	 * @return
	 */
	public CSUser getCSUserByTargetACC(String targetACC) throws OphiuxRepositoryException;
	
	/**
	 * 获取登录用户信息，含基本信息和登录记录
	 * @param targetACC	用户账号
	 * @return
	 */
	public CSUserInfo getCSUserInfoByTargetID(String targetACC) throws OphiuxRepositoryException;
	
	/**
	 * 保存咨询用户登录信息
	 * @param csUser
	 */
	public void save(CSUserInfo loginUser) throws OphiuxRepositoryException;
}
